using SmartMedicalRAG.Core.Models;

namespace SmartMedicalRAG.Core.Services;

/// <summary>
/// RAG生成服务接口
/// </summary>
public interface IRAGGenerationService
{
    /// <summary>
    /// 生成分诊建议
    /// </summary>
    /// <param name="patientData">患者数据</param>
    /// <returns>分诊建议</returns>
    Task<TriageRecommendation> GenerateTriageRecommendationAsync(PatientData patientData);
    
    /// <summary>
    /// 验证建议
    /// </summary>
    /// <param name="recommendation">分诊建议</param>
    /// <returns>是否有效</returns>
    Task<bool> ValidateRecommendationAsync(TriageRecommendation recommendation);
    
    /// <summary>
    /// 获取追溯来源
    /// </summary>
    /// <param name="recommendation">分诊建议</param>
    /// <returns>追溯来源列表</returns>
    Task<List<string>> GetTraceabilitySourcesAsync(TriageRecommendation recommendation);
} 